//
//  SXMessageViewController.swift
//  sina
//
//  Created by shengxinwei on 16/5/19.
//  Copyright © 2016年 shengxinwei. All rights reserved.
//

import UIKit

class SXMessageViewController: SXBaseTableViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

         visitorView.updateUI(UIImage(named: "visitordiscover_image_message")!, labString: "登录后，别人评论你的微博，发给你的消息，都会在这里收到通知")
        
         navigationItem.rightBarButtonItem = UIBarButtonItem(title: "show", style: .Plain, target: self, action: #selector(SXMessageViewController.changeBadgeValue))
       
        
        tabBarItem.badgeValue = "10"
        setBackground()
        
    }
    
    @objc private func changeBadgeValue() {
        tabBarItem.badgeValue = nil
         tabBarItem.badgeValue = "\(random() % 100)"
    }
    
    

    
    
    //设置背景图片
    private func setBackground() {
        for subview in self.tabBarController!.tabBar.subviews {
            if subview.isKindOfClass(NSClassFromString("UITabBarButton")!){
                for sub in subview.subviews{
                    if sub.isKindOfClass(NSClassFromString("_UIBadgeView")!){
                        for bgView in sub.subviews {
                            if bgView.isKindOfClass(NSClassFromString("_UIBadgeBackground")!){
                                var count: UInt32 = 0
                                let list = class_copyIvarList(NSClassFromString("_UIBadgeBackground")!.self, &count)
                                
                                for i in 0..<count{
                                    //获取成员变量指针
                                    let ivarPoint = list[Int(i)]
                                    //将成员变量的内存地址转换为 字符串
                                    let ivarName = ivar_getName(ivarPoint)
                                    print(ivarName)
                                    //将c语言字符串 转化为String
                                    let name = String(format: "%s", ivarName)
                                    let type = ivar_getTypeEncoding(ivarPoint)
                                    print(name,type)
                                    let image = UIImage(named: "main_badge")
                                    //调用KVC方法,设置值
                                    bgView.setValue(image, forKey: "_image")
                                }
                                
                                
                                
                                
                                
                            }
                        }
                    }
                }
            }
        }
        
    }
    
    
    
    
    
    
    
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    // MARK: - Table view data source

    override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
        // #warning Incomplete implementation, return the number of sections
        return 0
    }

    override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        // #warning Incomplete implementation, return the number of rows
        return 0
    }

    /*
    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCellWithIdentifier("reuseIdentifier", forIndexPath: indexPath)

        // Configure the cell...

        return cell
    }
    */

    /*
    // Override to support conditional editing of the table view.
    override func tableView(tableView: UITableView, canEditRowAtIndexPath indexPath: NSIndexPath) -> Bool {
        // Return false if you do not want the specified item to be editable.
        return true
    }
    */

    /*
    // Override to support editing the table view.
    override func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) {
        if editingStyle == .Delete {
            // Delete the row from the data source
            tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: .Fade)
        } else if editingStyle == .Insert {
            // Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view
        }    
    }
    */

    /*
    // Override to support rearranging the table view.
    override func tableView(tableView: UITableView, moveRowAtIndexPath fromIndexPath: NSIndexPath, toIndexPath: NSIndexPath) {

    }
    */

    /*
    // Override to support conditional rearranging of the table view.
    override func tableView(tableView: UITableView, canMoveRowAtIndexPath indexPath: NSIndexPath) -> Bool {
        // Return false if you do not want the item to be re-orderable.
        return true
    }
    */

    /*
    // MARK: - Navigation

    // In a storyboard-based application, you will often want to do a little preparation before navigation
    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
        // Get the new view controller using segue.destinationViewController.
        // Pass the selected object to the new view controller.
    }
    */

}
